home *** CD-ROM | disk | FTP | other *** search
/ HaCKeRz Kr0nlcKLeZ 1 / HaCKeRz Kr0nlcKLeZ.iso / emulator / coleco / history.txt < prev    next >
Encoding:
Internet Message Format  |  1996-04-29  |  55.5 KB

  1. From: bayko@hercules.cs.uregina.ca (J. Bayko)
  2. Date: 12 Jun 92 18:49:18 GMT
  3. Newsgroups: alt.folklore.computers,comp.arch
  4. Subject: Great Microprocessors of the Past and Present
  5.  
  6.  
  7.     I had planned to submit an updated version of the Great Microprocessor
  8. list after I'd completed adding new processors, checked out little bits,
  9. and so on...
  10.     That was going to take a while...
  11.     But then I got to thinking of all the people stuck with the origional
  12. error-riddled version. All these poor people who'd kept it, or perhaps
  13. placed in in an FTP site, or even - using it for reference??!
  14.     In good conscience, I decided I can't leave that erratic old version
  15. lying out there, where people might think it's accurate. So here is an
  16. interim release. There will be more to it later - the 320xx will be
  17. included eventually, for example. But at least this has been debugged
  18. greatly.
  19.     Enjoy...
  20.  
  21. John Bayko.
  22.  
  23. ---
  24.  
  25. Great Microprocessors of the Past and Present (V 3.2.1)
  26.  
  27.  
  28. Section One: Before the Great Dark Cloud.
  29.              ---------------------------
  30. Part I: The Intel 4004 (1972)
  31.  
  32.     The first single chip CPU was the Intel 4004, a 4-bit processor meant for
  33. a calculator. It processed data in 4 bits, but its instructions were
  34. 8 bits long. Internally, it featured four 12 bit(?) registers which acted as
  35. an internal evaluation stack. The Stack Pointer pointed to one of these
  36. registers, not a memory location (only CALL and RET instructions operated on
  37. the Stack Pointer). There were also sixteen 4-bit (or eight 8-bit) general
  38. purpose registers
  39.     The 4004 had 46 instructions. Intel created an 8-bit version of this, the
  40. 8008 (intended for a terminal controller).
  41. [for additional information, see Appendix B]
  42.  
  43. Part II: The Intel 4040 and 8080
  44.  
  45.     The 4040 was compatible with the 4004 instruction set - the 4040 had 60
  46. instructions, which included the 46 4004 instructions. The 8080 was similar to
  47. the 4040, except being 8 bits wide.
  48.     The 8080 had a 16 bit address bus, and an 8 bit data bus. Internally it
  49. had seven 8 bit registers (six which could also be combined as three 16 bit
  50. registers), a 16 bit stack pointer (the stack was stored in memory, not in an
  51. internal register set), and 16 bit program counter. It also had several I/O
  52. ports - 256 of them, so I/O devices could be hooked up without taking away or
  53. interfering with the addressing space.
  54.  
  55. Part III: The Zilog Z-80 - End of the 8-bit line (July 1976)
  56.  
  57.     The Z-80 was intended to be an improved 8080 (as was Intel's own 8085),
  58. and it was - vastly improved. It also used 8 bit data and 16 bit addressing,
  59. and could execute all of the 8080 op codes, but included 80 more, instructions
  60. that included 1, 4, 8 and 16 bit operations and even block move and block I/O
  61. instructions. The register set was doubled, with two banks of registers that
  62. could be switched between. This allowed fast operating system or interrupt
  63. context switches. The Z-80 also featured vectored interrupts.
  64.     Like many processors (including the 8085), the Z-80 featured many
  65. undocumented op codes. Chip area near the edge was used for added
  66. instructions, but fabrication made the failure of these high. Instructions
  67. that often failed were just not documented, increasing chip yield. Later
  68. fabrication made these more reliable.
  69.     But the thing that really made the Z-80 popular was actually the memory
  70. interface - the CPU generated it's own RAM refresh signals, which meant easier
  71. design and lower system cost. That and it's 8080 compatability, and CP/M, the
  72. first standard microprocessor operating system, made it the first choice of
  73. many systems.
  74.  
  75. Part IV: The 650x, Another Direction (1975-ish)
  76.  
  77.     Shortly after the 8080, Motorola introduced the 6800. Some designers then
  78. started MOS Technologies, which introduced the 650x series, based on 6800
  79. design (not a clone for legal reasons), and including the 6502 used in
  80. Commodores, Apples and Ataris. Steve Wozniak described it as the first chip
  81. you could get for less than a hundred dollars (a quarter of the 6800 price).
  82.     Unlike the 8080 and its kind, the 6502 had very few registers. It was an
  83. 8 bit processor, with 16 bit address bus. Inside was one 8 bit data register,
  84. and two 8 bit index registers and an 8 bit stack pointer (stack was preset
  85. from address 256 to 511). It used these index and stack registers
  86. effectively, with more addressing modes, including a fast zero-page mode that
  87. accessed memory addresses from address 0 to 255 with an 8-bit address that
  88. speeded operations (it didn't have to fetch a second byte for the address).
  89.     The 650x also had undocumented instructions.
  90.     As a side point, Apples, which were among the first microcomputers
  91. introduced, are still made, now using the 65816, which is compatable with the
  92. 6502, but has been expanded to 16 bits (including index and stack registers,
  93. and a 16-bit direct page register), and a 24-bit address bus. The Apple II
  94. line, which actually includes the Apple I, is the longest existing line of
  95. microcomputers.
  96.     Back when the 6502 was introduced, RAM was actually faster than CPUs, so
  97. it made sense to optimize for RAM access rather than increase the number of
  98. registers on a chip.
  99.  
  100. Part V: The 6809, extending the 650x
  101.  
  102.     The 6800 from Motorola was essentially the same design as the 6502, but
  103. the latter left out one data register and added one index register, a minor
  104. change. But the 6809 was a major advance over both - at least relatively.
  105.     The 6809 had two 8 bit accumulators, rather than one in the 6502, and
  106. could combine them into a single 16 bit register. It also featured two index
  107. registers and two stack pointers, which allowed for some very advanced
  108. addressing modes. The 6809 was source compatible with the 6800, even though
  109. the 6800 had 78 instructions and the 6809 only had around 59. Some
  110. instructions were replaced by more general ones which the assembler would
  111. translate, and some were even replaced by addressing modes.
  112.     Other features were one of the first multiplication instructions of the
  113. time, 16 bit arithmatic, and a special fast interrupt. But it was also highly
  114. optimized, gaining up to five times the speed of the 6800 series CPU. Like the
  115. 6800, it included the undocumented HCF (Halt Catch Fire) bus test instruction.
  116.     The 6800 lived on as well, becoming the 6801/3, which included ROM, some
  117. RAM, a serial I/O port, and other goodies on the chip. It was meant for
  118. embedded controllers, where the part count was to be minimized. The 6803 led
  119. to the 68HC11, and that was extended to 16 bits as the 68HC16. But the 6809
  120. was a much faster and more flexible chip, particularly with the addition of
  121. the OS-9 operating system.
  122.     Of course, I'm a 6809 fan myself...
  123.  
  124.     As a note, Hitachi produced a version called the 6309. Compatible with the
  125. 6809, it added 2 new 8-bit registers that could be added to form a second 16
  126. bit register, and all four 8-bit registers could form a 32 bit register. It
  127. also featured division, and some 32 bit arithmatic, and was generally 30%
  128. faster in native mode. This information, suprisingly, was never published by
  129. Hitachi.
  130.  
  131. Part VI: Advanced Micro Devices Am2901, a few bits at a time
  132.  
  133.     Bit slice processors were modular processors. Mostly, they consisted of an
  134. ALU of 1, 2, 4, or 8 bits, and control lines (including carry or overflow
  135. signals usually internal to the CPU). Two 4-bit ALUs could be arranged side by
  136. side, with control lines between them, to form an ALU of 8-bits, for example.
  137. A sequencer would execute a program to provide data and control signals.
  138.     The Am2901, from Advanced Micro Devices, was a popular 4-bit-slice
  139. processor. It featured sixteen 4-bit registers and a 4-bit ALU, and operation
  140. signals to allow carry/borrow or shift operations and such to operate across
  141. any number of other 2901s. An Am2910 address sequencer could provide control
  142. signals with the use of custom microcode in ROM.
  143.     The Am2903 featured hardware multiply support.
  144.  
  145. Section Two: Forgotten/Innovative Designs before the Great Dark Cloud
  146.              --------------------------------------------------------
  147. Part I: RCA 1802, wierdness at its best (1974)
  148.  
  149.     The RCA 1802 was an odd beast, extremely simple and fabricated in CMOS,
  150. which allowed it to run at 6.4 MHz (very fast for 1974) or suspended with the
  151. clock stopped. It was an 8 bit processor, with 16 bit addressing, but the
  152. major features were it's extreme simplicity, and the flexibility of it's large
  153. register set. Simplicity was the primary design goal, and in that sense it was
  154. one of the first RISC chips.
  155.     It had sixteen 16-bit registers, which could be accessed as thirty-two
  156. 8 bit registers, and an accumulator D used for arithmatic and memory access -
  157. memory to D, then D to registers, and vice versa, using one 16-bit register
  158. as an address. This led to one person describing the 1802 as having 32 bytes
  159. of RAM and 65535 I/O ports. A 4-bit control register P selected any one
  160. general register as the program counter, while control registers X and N
  161. selected registers for I/O Index, and the operand for current instruction. All
  162. instructions were 8 bits - a 4-bit op code (total of 16 operations) and 4-bit
  163. operand register stored in N.
  164.      There was no real conditional branching, no subroutine support, and no
  165. actual stack, but clever use of the register set allowed these to be
  166. implimented - for example, changing P to another register allowed jump to a
  167. subroutine. Similarly, on an interrupt P and X were saved, then R1 and R2 were
  168. selected for P and X until an RTI restored them.
  169.     A later version, the 1805, was enhanced, addind several Forth language
  170. primitives. Forth was commonly used in control applications.
  171.  
  172.     Apart from the COSMAC microcomputer kit, the 1802 saw action in some
  173. video games from RCA and Radio Shack, and the chip is the heart of the
  174. Voyager, Viking and Galileo probes. One reason for this is that the 1802 was
  175. also fabricated mounted on saphire, which leads to radiation and static
  176. resistance, ideal for space operation.
  177.  
  178. Part II: Fairchild F8, Register windows
  179.  
  180.     The F8 was an 8 bit processor. The processor itself didn't have an address
  181. bus - program and data memory access were contained in separate units, which
  182. reduced the number of pins, and the associated cost. It also featured 64
  183. registers, accessed by the ISAR register in cells (windows) of eight, which
  184. meant external RAM wasn't always needed for small applications. In addition,
  185. the 2-chip processor didn't need support chips, unlike others which needed
  186. seven or more.
  187.     The use of the ISAR register allowed a subroutine to be entered without
  188. saving a bunch of registers, speeding execution - the ISAR would just be
  189. changed. Special purpose registers were stored in the second cell (regs 9-15),
  190. so the first window would be used for global variables.
  191.     The windowing concept was useful, but only the register pointed to by the
  192. ISAR could be accessed, limiting usefulness - to access another register the
  193. ISAR was incremented or decremented through the window.
  194.  
  195. Part III: SC/MP, early advanced multiprocessing (April 1976)
  196.  
  197.     The National Semiconductor SC/MP, (nicknamed "Scamp") was a typical
  198. well-designed 8 bit processor intended for control applications. It featured
  199. 16 bit addressing, with 12 address lines and 4 lines borrowed from the data
  200. bus (it was common to borrow lines from the data bus for addressing).
  201. Internally, it included three index registers.
  202.     The unique feature was the ability to completely share a system bus with
  203. other processors. Most processors of the time assumed they were the only ones
  204. accessing memory or I/O devices. Multiple SC/MPs could be hooked up to the
  205. bus, as well as other intelligent devices, such as DMA controllers. A control
  206. line could be chained along the processors to allow cooperative processing.
  207.     This was very advanced for the time, compared to other CPUs. However, the
  208. SC/MP had no stack or subroutine instructions, though a stack could be
  209. emulated to some degree. It's intent was for embedded control, and these
  210. features were omitted for cost reasons. It was also bit serial internally to
  211. keep it cheap.
  212.  
  213. Part IV: F100-L, a self expanding design
  214.  
  215.     The Ferranti F100-L was designed by a British company for the British
  216. Military. It was an 8 bit processor, with 16 bit addressing, but it could only
  217. access 32K of memory (1 bit for indirection).
  218.     The unique feature of the F100-L was that it had a complete control bus
  219. available for a coprocessor that could be added on. Any instruction the F100-L
  220. couldn't decode was sent directly to the coprocessor for processing.
  221. Applications for coprocessors at the time were limited, but the idea is still
  222. used in modern processors. This coprocessor design was adapted by other
  223. processors, such as the National Semiconductor 320xx series, which included
  224. FPU, MMU, and other coprocessors that could just be added to the CPU's
  225. coprocessor bus in a chain. Other units not forseen could be added later.
  226.     The NS 320xx series was the predecessor of the Swordfish processor,
  227. described later.
  228.  
  229. Part V: The Western Digital 3-chip CPU (June 1976)
  230.  
  231.     The Western Digital MCP-1600 was probably the most flexible processor
  232. available. It consisted of at least four separate chips, including the control
  233. circutry unit, the ALU, two or four ROM chips with microcode, and timing
  234. circuitry. It doesn't really count as a microprocessor, but neither do
  235. bit-slice processors (AMD 2901).
  236.     The ALU chip contained twenty six 8 bit registers and an 8 bit ALU, while
  237. the control unit supervised the moving of data, memory access, and other
  238. control functions. The ROM allowed the chip to function as either an 8 bit
  239. chip or 16 bit, with clever use of the 8 bit ALU. Even more, microcode allowed
  240. the addition of Floating Point routines, simplifying programming (and possibly
  241. producing a Floating Point Coprocessor).
  242.     Two standard microcode ROMS were available. This flexibility was one
  243. reason it was also used to impliment the LSI-11 processor as well as the WD
  244. Pascal Microengine.
  245.  
  246. Part VI: Intel 8048, Harvard bus
  247.  
  248.     The MCS-48 was a microcontroller familly, not a single microprocessor, but
  249. did feature a separate data and program bus, known as Harvard Architecture. In
  250. theory, It allows simultaneous reading of data while the next instruction is
  251. fetched, allowing an increase in speed. In this case, its purpose was to allow
  252. different size data (RAM) and program (usually ROM) memory.
  253.     In other aspects as well, the MSC-48 series was small, featuring only a
  254. single 8 bit register, around 4K of program memory, and 256 bytes of data
  255. memory (organized in register pages, like the F8 processor). It did have stack
  256. and subroutine operations, but the 256 byte memory limit made that limited.
  257.  
  258. Part VII: Motorolla MC14500B ICU, one bit at a time
  259.  
  260.     Probably the limit in small processors was the 1 bit 14500B from Motorola.
  261. It had a 4 bit instruction, and controlled a single signal line for
  262. application control. It had no address bus - that was an external unit that
  263. was added on. Another CPU could be used to feed control instructions to the
  264. 14500B in an application.
  265.     It had only 16 pins, less than a typical RAM chip, and ran at 1 MHz.
  266.  
  267.  
  268. Section Three: The Great Dark Cloud Falls: IBM's Choice.
  269.                ----------------------------------------
  270. Part I: TMS 9900, first of the 16 bits (June 1976)
  271.  
  272.     One of the first true 16 bit microprocessors was the TMS 9900, by Texas
  273. Instruments. It was designed as a single chip version of the TI 990
  274. minicomputer series, much like the 12 bit Intersil 6100 was a single chip
  275. PDP-8E, used in the DECmate, DEC's competition for the IBM PC. Because of
  276. this, the TMS 9900 had a mature, well thought out design.
  277.     It had a 15 bit address space and two internal 16 bit registers. One
  278. unique feature, though, was that all its registers were actually kept in
  279. memory - this included stack pointers and the program counter. A single
  280. workspace register pointed to the register set in RAM, so when a subroutine
  281. was entered or an interrupt was processed, only the single workspace register
  282. had to be changed - unlike some CPUs which required dozens or more register
  283. saves before acknowleging a context switch.
  284.     This was feasable at the time because RAM was faster than the CPUs. A few
  285. modern designs, such as the INMOS Transputers, use this same design using
  286. caches or rotating buffers, for the same reason of improved context switches.
  287. Some chips of the time, such as the 650x series had a similar philosophy,
  288. using index registers, but the TMS 9900 went the farthest in this direction.
  289.     That wasn't the only positive feature of the chip. It had good interrupt
  290. handling features and very good instruction set. In typical comparisons with
  291. the Intel 8086, the TMS9900 had smaller and much faster programs. The only
  292. disadvantage was the small address space and need for fast RAM.
  293.     Despite the very poor support from Texas Instruments, the TMS 9900 had
  294. the potential at one point to surpass the 8086 in popularity.
  295.  
  296. Part II: Zilog Z-8000, another direct competitor.
  297.  
  298.     The Z-8000 was introduced not long after the 8086, but had superior
  299. features. It was basically a 16 bit processor, but could address up to 23
  300. bits in some versions by using segmentation. The segment simply held the
  301. upper 7 bits for the register. There was also an unsegmented version, but both
  302. could be extended further with an additional MMU that used paging and 64
  303. segment registers.
  304.     Internally, the Z-8000 had sixteen 16 bit registers, but register size
  305. and use were exceedingly flexible. The Z-8000 registers could be used as
  306. sixteen 8 bit registers (only the first half were used like this), sixteen
  307. 16-bit registers, eight 32 bit registers, or four 64 bit registers, and
  308. included 32-bit multiply and divide. They were all general purpose registers -
  309. the stack pointer was typically register 15, with register 14 holding the
  310. segment (you could just access it as a 32 bit register for address
  311. calculations.
  312.     The Z-8000 featured two modes, one for the operating system and one for
  313. user programs. The user mode prevented the user from messing about with
  314. interrupt handling and other potentially dangerous stuff.
  315.     Finally, like the Z-80, the Z-8000 featured automatic RAM refresh
  316. circuitry. Unfortunately it was somewhat slow, but the features generally made
  317. up for that. Initial bugs also hindered its acceptance. There was a radiation
  318. resistant military version.
  319.     A later version, the Z-80000, was expanded to 32 bits internally.
  320.  
  321. Part III: Motorola 68000, a refined 16/32 bit CPU
  322.  
  323.     The 68000 was actually a 32 bit architecture internally, but 16 bit
  324. externally for packaging reasons. It also included 24 bit addressing, without
  325. the use of segment registers. That meant that a single directly accessed array
  326. or structure could be larger than 64K in size. Addresses were computed as 32
  327. bit, but the top 8 bits were cut to reduce costs. No segments made programming
  328. the 68000 easier than competing processors.
  329.     Looking back, it was logical, since most 8 bit processors featured direct
  330. 16 bit addressing without segments.
  331.     The 68000 had sixteen registers, split into data and address registers.
  332. One address register was reserved for the Stack Pointer. Both types of
  333. registers could be used for any function except for direct addressing. Only
  334. address registers could be used as the source of an address, but data
  335. registers could provide the offset from an address.
  336.     Like the Z-8000, the 68000 featured a supervisor and user mode. There
  337. were two Stack Pointers, one for supervisor and one for user mode. The Z-8000
  338. and 68000 were similar in capabilities, but the 68000 had 32 bit units
  339. internally, making it faster and eliminating forced segmentations. It was
  340. designed for expansion, including specifications for floating point and string
  341. operations (floating point later implimented in the 68040).
  342.  
  343. Part IV: Intel 8086, IBM's choice (1978)
  344.  
  345.     The Intel 8086 was based on the design of the 8085, but with enhancements
  346. and as a 16 bit processor. It had a similar register set, and featured a 6
  347. byte prefetch instruction queue for additional speed.
  348.     It featured four 16 bit general registers, which could be accessed as
  349. eight 8 bit registers or four 16 bit index registers, and four 16 bit segment
  350. registers. The data registers were often used implicitly by instructions,
  351. complicating register allocation for temporary values. There were also four index registers, which included the stack pointer.
  352.     The segment registers allowed the CPU to access 1 meg of memory through
  353. an odd process. Rather than just supplying missing bytes, as most segmented
  354. processors, the 8086 actually added the segment registers ( X 16, or shifted
  355. left 4 bits) to the address. As a strange result, segments overlapped, and it
  356. was possible to have two pointers with the same value point to two different
  357. memory locations, or two pointers with different values pointing to the same
  358. location. Most people consider this a brain damaged design.
  359.     Although this was largely acceptable for assembly language, where control
  360. of the segments was complete (it could even be useful then), in higher level
  361. languages it caused constant confusion (ex. near/far pointers). Even worse,
  362. this made expanding the address space to more than 1 meg difficult. A later
  363. version, the 80386, expanded the design to 32 bits, and 'fixed' the
  364. segmentation, but required extra modes (supressing the new features) for
  365. compatability.
  366.  
  367.     So why did IBM chose the 8086 series when most of the alternatives were so
  368. much better? Apparently IBM's own engineers wanted to use the 68000, and it
  369. was used later in the forgotten IBM Instruments 9000 Laboratory Computer, but
  370. IBM already had rights to manufacture the 8086, in exchange for giving Intel
  371. the rights to it's bubble memory designs. Apparently IBM was using 8086s in
  372. the IBM Displaywriter word processor.
  373.     Other factors were the 8-bit 8088 version, which could use existing
  374. 8085-type components, and allowed the computer to be based on a modified 8085
  375. design. 68000 components were not widely available, though it could use 6800
  376. components to an extent.
  377.     Intel bubble memory was on the market for a while, but faded away as
  378. better and cheaper memory technologies arrived.
  379.  
  380.  
  381. Section Four: Unix and RISC, a New Hope
  382.               -------------------------
  383. Part I: SPARC, an extreme windowed RISC
  384.  
  385.     SPARC, or the Scalable Processor ARChitecture was designed by Sun
  386. Microsystems for their own use. Sun was a maker of workstations, and used
  387. standard 68000-based CPUs and a standard operating system, Unix. Research
  388. versions of RISC processors had promised a major step forward in speed
  389. [See Appendix A], but existing manufacturers were slow to introduce a RISC
  390. type processor, so Sun went ahead and developed its own (based on Berkley's
  391. design). In keeping with their open philosophy, they licensed it to other
  392. companies, rather than manufacture it themselves.
  393.     SPARC was not the first RISC processor. The AMD 29000 (see below) came
  394. before it, as did the MIPS R2000 (based on Stanford's design) and
  395. Hewlitt-Packard Precision Architecture CPU. Most RISC CPUs are more
  396. conventional, but the SPARC is a good example of extreme RISC philosophies,
  397. originally even forgoing useful multi-cycle instructions like multiply and
  398. divide.
  399.      SPARC usually contains about 128 registers, compared to 16 for previous
  400. CISC designs. At each time 32 registers are available - 8 are global, the rest
  401. are allocated in a 'window' from a stack of registers. The window is moved 16
  402. registers down the stack during a function call, so that the upper and lower 8
  403. registers are shared between functions, to pass and return values, and 8 are
  404. local. The window is moved up on return. This allows functions to be called in
  405. as little as 1 cycle. Registers are loaded or saved only at the top or bottom
  406. of the register stack. Like most RISC processors, global register zero is
  407. wired to zero to simplify instructions, and SPARC is pipelined for
  408. performance.
  409.     SPARC is 'scalable' mainly because the register stack can be expanded, to
  410. reduce loads and saves between functions, or scaled down to reduce interrupt
  411. or context switch time, when the entire 128 register set has to be written to
  412. memory. Function calls are usually much more frequent, so the large register
  413. set is usually a plus.
  414.     SPARC is not a chip, but a specification, and so there are various designs
  415. of it. It has undergone revisions, and now has multiply and divide
  416. instructions. Most versions are 32 bits, but there are designs for 64 bit and
  417. superscalar versions. SPARC was submitted to the IEEE society to be considered
  418. for the P1754 microprocessor standard.
  419.  
  420. Part II: AMD 29000, a flexible register set (1986?)
  421.  
  422.     The AMD 29000 is another RISC CPU descended from the Berkley RISC design.
  423. Like the SPARC design that was introduced shortly later, the 29000 has a large
  424. set of registers split into local and global sets. But though it was
  425. introduced before the SPARC, it has a more elegant method of register
  426. management.
  427.     The 29000 has 64 global registers, in comparison to the SPARC's eight. In
  428. addition, the 29000 allows variable sized windows allocated from the 128
  429. register stack cache. The current window or stack frame is indicated by a
  430. stack pointer, while the caller's frame is stored in current frame's register,
  431. like in an ordinary stack. Spills and fills occur only at the ends of the
  432. cache, and registers are saved/loaded from the memory stack. This allows
  433. variable window sizes, from 1 to 128 registers. This flexibility, plus the
  434. large set of global registers, makes register allocation easier than in SPARC.
  435.     Registers aren't saved during interrupts, allowing the interrupt routine
  436. to determine whether the overhead is worthwhile. In addition, a form of
  437. register access control is provided. All registers can be protected, in blocks
  438. of 4, from access. These features make the 29000 useful for embedded
  439. applications, which is where most of these processors are used.
  440.     Slomewhat more elegant than the SPARC, the AMD 29K can also claim to be
  441. 'the most popular RISC processor'.
  442.  
  443. Part III: Motorola 88000, a conservative RISC
  444.  
  445.     A design that is typical of most current RISC processors is the Motorola
  446. 88000 (originally named the 78000). It is a 32 bit processor with Harvard
  447. architecture (separate data and instruction buses). Each bus has a separate
  448. cache, so simultaneous data and instruction access doesn't conflict. It is
  449. similar to the Hewlett Packard Precision Architecture in design, though
  450. slightly more elegant.
  451.     The chip contains thirty two 32 bit registers, and is organized with
  452. separate function units internally - an ALU and a floating point unit in the
  453. 88100 version. Other special function units, such as graphics, vector
  454. operations, and such can be added to the design to produce a custom design for
  455. customers. Additional ALU and FPU units can allow a superscalar operation of
  456. the CPU (as in the 88110 version, for example). The function units of the
  457. 88100 share the same register set, while the 88110, like most chips, has
  458. a separate set of thirty two 80-bit registers for the FPU.
  459.     The ALU typically executes in 1 cycle, but it or the FPU can take several
  460. clock cycles for an operation (ex. multiplication). For performance, the
  461. units are pipelined, so one instruction can be issued each cycle, with the
  462. result appearing several cycles later. To keep track of this latency, the
  463. 88000 has a scoreboard register which keeps track of registers, and ensures
  464. the result arrives before operation continues.
  465.     In the superscalar 88110, the result from one ALU can be fed directly into
  466. another in the next clock cycle (as opposed to saving to a register first),
  467. saving a clock cycle between instructions. Also, loads and saves are buffered
  468. so the processor doesn't have to wait, except when loading from a memory
  469. location still waiting for a save to complete. The 88110 version can also
  470. speculatively execute conditional branches in the pipeline. If the speculation
  471. is true, there is no branch delay in the pipeline. Otherwise, the operations
  472. are rolled back from a history buffer (at least 1 cycle penalty), and the
  473. other fork of the branch is taken.
  474.  
  475. Part IV: Acorn ARM, RISC for home use (1985)
  476.  
  477.     ARM (Advanced RISC Machine) is often praised as one of the most elegant
  478. modern processors in existance. It was meant to be "MIPs for the masses", and
  479. designed as part of a family of chips (ARM - CPU, MEMC - MMU and DRAM/ROM
  480. controller, VIDC - video and DAC, IOC - I/O, timing, interrupts, etc), for the
  481. Archimedes home computer (multitasking OS, windows, etc). It's made by VLSI
  482. Technologies Inc.
  483.     The original ARM2 was a 32 bit CPU, but used 26 bit addressing. The newer
  484. ARM6xx spec is completely 32 bits. It has user, supervisor, and various
  485. interrupt modes (including 26 bit modes for ARM2 compatability) and sixteen
  486. registers. There is a multiple load/save instruction (many registers are
  487. shadowed in other modes). The ARM series consists of the ARM6 CPU core, which
  488. can be used as the basis for a custom CPU, the ARM60 base CPU, and the ARM600
  489. which also includes 4K cache, MMU, write buffer, and coprocessor interface. It
  490. can be big- or little-endian.
  491.     A unique feature of ARM is that every instruction features a 4 bit
  492. condition code (including 'never execute'). This easily eliminates many
  493. branches and can speed execution. Every instruction has a bit to indicate if
  494. condition codes should be set - an instruction can set them, and several
  495. intervening ininstructions can execute before the codes are used. Addressing
  496. also features a very useful mode (base register indexed by index register
  497. shifted by a constant - ra + rb << k) found in few other processors.
  498.     The ARM hasn't had the development put into it that others have, so there
  499. aren't superscalar or superpipelined versions, and the clock rate is not
  500. breathtaking. However it wasn't meant to break speed records, and is a very
  501. elegant, fast and low cost CPU.
  502.  
  503. Section Five: Just Beyond Scalar
  504.               ------------------
  505. Part I: Intel 860, "Cray on a Chip"
  506.  
  507.     The Intel 860 wasn't Intel's first RISC chip - that was the 960, but the
  508. 960 was slower, and marketed for embedded control applications. The 860 was
  509. an impressive chip when introduced, able at top speed to perform close to 66
  510. MFLOPS at 33 MHz in real applications, compared to a more typical 5 or 10
  511. MFLOPS at the time. It has lagged behind newer designs, though.
  512.     The 860 has several modes, from regular scaler mode to a superscaler mode
  513. that executes two instructions per cycle and a pipelined mode. It can use the
  514. entire 8K data cache as a vector register, in the same way that supercomputers
  515. like Crays do.
  516.     The 860 is a 64 bit processor essentially - though it normally uses thirty
  517. two 32 bit registers it has sixteen 64 bit floating point registers. It
  518. contains not only an integer ALU but a FPU, and even more unusual, a 3-D
  519. graphics unit that performs lines, Gouraud shading,  Z-buffering for hidden
  520. line removal, and other operations, all in conjunction with the FPU. It has
  521. separate instruction and data busses, and can access 4 G of memory, with
  522. segments. It also includes a Memory Management Unit for virtual storage.
  523.    In a single cycle, the 860 can do an integer operation, and a special
  524. multiply and add floating point operation, for a total of three instructions.
  525. Actually getting the chip at top speed usually requires using assembly
  526. language - using standard compilers gives it a speed similar to other
  527. processors. Because of this, it's best used as a coprocessor, either for
  528. graphics, like the NeXTdimension board, or floating point acceleration, like
  529. add in units for workstations.
  530.     Another problem is the difficulty handling interrupts. It is extensively
  531. pipelined, having as many as four pipes going at once, and when an interrupt
  532. occurs, the pipes can spill and lose data unless complex code is used to
  533. clean up. Delays range from 62 cycles (best case) to 50 microseconds (almost
  534. 2000 cycles)
  535.  
  536. Part II: IBM RS/6000 POWER chip
  537.  
  538.     When IBM decided to become a real part of the workstation market (after
  539. its unsuccessful PC/RT based on the ROMP processor), it decided to produce a
  540. new innovative CPU, based partly on the 801 project that pioneered RISC
  541. theory. RISC normally stands for Reduced Instruction Set Computing, but IBM
  542. calls it Reduced Instruction-Cycle Set Computing, and implimented a complex
  543. processor with more instructions than most CISC processors. They ended up with
  544. was a CPU that actually contains five or seven separate chips.
  545.     The chips are the branch unit, fixed point unit, floating point unit, and
  546. either two or four cache chips.
  547.     The branch unit is the heart of the CPU, and actually enables up to five
  548. instructions to be executed at once, though three is more common. It contains
  549. the condition code register, performs checks on this register, and also
  550. performs branches. It also dispatches instructions to the fixed or floating
  551. point units. For added speed, it contains its own loop register (for
  552. decrement and branch on zero). The condition code register has eight fields -
  553. two reserved for the fixed and floating point units, the other six settable
  554. separately. This allows a field to be set, then a branch can occur several
  555. instructions later. In addition, the branch unit can speculatively execute
  556. conditional branches, and then cancel the instructions if the branch is not
  557. taken.
  558.     The fixed point unit performs integer operations, as well as some complex
  559. string instructions and multiple load and store. The fixed unit contains
  560. thirty two 32 bit registers.
  561.     The floating point unit contains thirty two 64 bit registers and performs
  562. all typical floating point operations. In addition, like the Intel 860, the
  563. floating unit has a special multiply and add instruction. The floating unit
  564. performs this operation with up to 162 bits of precision before truncating it
  565. to 64 bits. Often this type of operation can produce over +/-100% error if
  566. too few bits are used. The registers are loaded and stored by the fixed point
  567. unit.
  568.     Unlike the Intel 860, the POWER CPU does not need a special mode - the
  569. branch unit actually reschedules instructions to operate faster. It also
  570. handles interrupts reasonably well, and is overall a very good design. It
  571. does, however, violate the RISC philosophy of fewer instructions at over a
  572. hundred, versus only about 34 for the ARM and 52 for the Motorola 88000
  573. (including FPU instructions). A single chip POWER CPU (no separate branch
  574. unit) designed, to be manufactured by IBM and Motorola, qualifies it as a
  575. microprocessor.
  576.  
  577. Part III: National Semiconductor Swordfish
  578.  
  579.     The Intel 860 is a superscaler chip, but is essentially a VLIW, or Very
  580. Long Instruction Word processor, which means that more than one instruction
  581. is contained in a single instruction word - in this case, two. The IBM POWER
  582. CPU reshedules instructions on the run, which gives it more flexibility, but
  583. it can only execute different types of instructions at the same time - one
  584. integer and one floating point, for example.
  585.     The Swordfish chip contains two separate integer units, allowing two
  586. integer instructions to execute at once, along with one floating point
  587. add/subtract and yet another DSP unit for multiplies, for a theoretical total
  588. of four instructions at once.
  589.     The CPU is a 32 bit processor, but has a 64 bit data bus for fetching
  590. multiple instructions at once. It features an instruction loader which
  591. functions like the branch unit in the IBM POWER CPU, but lacks the extended
  592. functions - it can't branch concurrently. It also features a Digital Signal
  593. Processing (DSP) unit to perform multiplies and other DSP operations, and a
  594. separate FPU. The DSP also performs single cycle integer multiplies, a task
  595. that usually takes around seven cycles for most integer ALUs.
  596.     It is RISC in the sense that it executes instructions in one cycle, but
  597. it doesn't use register windowing like the SPARC processor. It performs 20
  598. MFLOPS at 50 MHz, which is good compared to other RISC chips, but slow
  599. compared to dedicated DSPs. Still, the FPU and integer units result in most
  600. processing tasks being faster - at 50 MHz the chip runs about 100 MIPS. The
  601. POWER CPU is about as fast, but operates at half the clock speed.
  602.     The Swordfish's neatest features, though, are it's hardware. It
  603. automatically can adjust it's data bus size, from 64 bits to 32, 16, or even
  604. 8 bits, making it very easy to design for. In addition, it can run from a
  605. 50MHz clock, or a 25 MHz clock in which case it multiplies the clock
  606. internally back to 50 MHz. This allows 25MHz parts to be used with it. It
  607. also features two DMA channels and a timer unit.
  608.  
  609. Part IV: DEC Alpha, Designed for the future (1992)
  610.  
  611.     The DEC Alpha architecture is designed, according to DEC, for a
  612. operational life of 25 years. It doesn't contain particular innovations
  613. (although the PALcall operation is unusual), but is an elegant blend of
  614. features, selected to ensure no obvious limits to future performance - no
  615. special registers, etc. The 21064 is DEC's first Alpha chip.
  616.     It is a 64 bit chip that doesn't support 8- or 16-bit operations, but
  617. allows conversions, so no functionality is lost (Most processors of this
  618. generation are similar, but have instructions with implicit conversions).
  619. Alpha 32-bit operations differ from 64 bit only in overflow detection. Oddly,
  620. Alpha does not provide a divide instruction.
  621.     One reason for Alpha is to replace DEC's two previous architectures - the
  622. VAX and MIPS CPUs. To do this, the chip provides both IEEE and VAX floating
  623. point operations. It also features a Privleged Architecture Library (PAL)
  624. calls, a set of programmable macros written in the Alpha instruction set,
  625. similar to the programmable microcode of the Western Digital MCP-1600 or the
  626. AMD Am2910 CPUs. It provides support of various operating systems - VMS, Unix
  627. or Microsoft NT.
  628.     Alpha was also designed for the future, including superscalar,
  629. multiprocessing, and high speed clock. Because of this, superscalar
  630. insturcions may be reordered and trap conditions are imprecise. Special
  631. instructions are available to control both occurrences when needed. SPARC also
  632. has a specification for instruction ordering.
  633.  
  634.  
  635. Section Six: Wierd and Innovative Chips
  636.              --------------------------
  637. Part I: T-9000, parallel computing (1990)
  638.  
  639.     The INMOS T-9000 is the latest version of the Transputer architecture, a
  640. processor designed to be hooked up to other processors for high speed
  641. parallel processing. The previous versions were the 16 bit T-212 and 32 bit
  642. T-414 and T-800 processors (1985). The T-800 included a 64 bit floating point
  643. unit. They used some RISC principles before it became fashionable, but the
  644. most important feature was that each chip contained 4 serial ports to connect
  645. the chips in a network.
  646.     Although the previous chips were fast, the T-9000 is a much extended
  647. design. It starts with an architecture like the T-800. It contains only three
  648. registers that are used as an evaluation stack - they are not general purpose.
  649. Instead, like the TMS 9900, it uses memory for registers, and points to the
  650. workspace using a workspace register and cache based on 32 word rotating
  651. buffers. This allows very fast context switching, less than a microsecond.
  652.     Unlike when the TMS 9900 was created, the T-9000 is far faster than
  653. memory access, so the CPU has several levels of very high speed caches and
  654. memory levels. It not only speeds process scheduling, is simplifies it enough
  655. that task switching is automated in hardware, unlike most processors. The
  656. Intel 432, described later, also attempted hardware process scheduling, but
  657. was unsuccessful at it. The main cache is 16 K, and is designed for 3 reads
  658. and 1 write simultaneously. The workspace cache allows 2 reads and 1 write
  659. simultaneously.
  660.     The T-9000 contains 4 main internal units, the CPU, the VCP, which
  661. performs the communications between chips, the PMI, which manages memory, and
  662. the Scheduler. There's also an instruction grouper which can schedule five
  663. instruction stages in the most efficient manner. The grouper can start an
  664. instruction in any stage (bypassing unneeded stages) and instructions don't
  665. need to pass through every stage, and can leave when finished, freeing the
  666. pipeline for other instructions. Instructions themselves are unique in that
  667. frequently used instructions are stored in only a byte, but other instructions
  668. are represented by multiple bytes.
  669.     The serial links allow communications at close to the speed of direct
  670. memory access, and the VCP unit allows this to take place without the CPU
  671. being aware of it. Even larger networks can be created with the C104 crossbar
  672. switch, which can connect 32 transputers or other C104 switches into a
  673. network hundreds of thousands of processors large. The C104 acts like a
  674. instant switch, not a network node, so the message is passed through, not
  675. stored.
  676.     Like the Swordfish CPU, the T-9000 PMI (Programable Memory Interface) can
  677. adapt to a 64, 32, 16, or 8 bit bus.
  678.  
  679. Part II: Intel 432, Extraordinary complexity (1980)
  680.  
  681.     The Intel iAPX 432 was a complex, object oriented 32-bit processor that
  682. included high level operating system support in hardware, such as process
  683. scheduling and interprocess messaging. It was intended to be the main Intel
  684. microprocessor - the 80286 was envisioned as a step between the 8086 and the
  685. 432. The 432 actually included four chips. The GDP (processor) and IP (I/O
  686. controller) were introduced in 1980, and the BIU (Bus Interface Unit) and MCU
  687. (Memory Control Unit) were introduced in 1983 (but not widely). The GDP complexity was split into 2 chips, so it wasn't really a microprocessor.
  688.     The GDP was exclusively object oriented - normal linear memory access
  689. wasn't allowed. It was designed with the Ada programming language in mind. It
  690. had hardware support for data hiding, methods, inheritance, late binding, and
  691. access protection. Unfortunately this meant that every memory access was
  692. checked, which slowed execution (despite some caching). The stack oriented
  693. design meant the GDP had no local user data registers. It supported up to
  694. 2^24 segments, each limited to 64K in size, but the object oriented nature of
  695. the design meant that was not a real limitation. Instructions were bit
  696. encoded, ranging from 6 bits to 321 bits long (like the T-9000) and could be
  697. very complex.
  698.     The BIU defined the bus. BIUs were designed for multiprocessor support,
  699. allowing up to 63 modules (BIU or MCU) on a bus, and up to 8 independent
  700. buses, allowing memory interleaving, to speed access. The MCU did automatic
  701. pairity checking and ECC error correcting. The total system was
  702. designed to be fault tolerant to a large degree, and each of these parts
  703. contributes to that reliability.
  704.     Despite these advanced features, the 432 didn't catch on. The main reason
  705. was that it was slow, up to five or ten times slower than a 16-bit 68000. Part
  706. of this was the lack of local data registers, or a significant cache. Part of
  707. this was the fault-tolerant BIU, which defined an asyncronous clocked bus that
  708. resulted in 25% to 40% of the access time being used by wait states. The
  709. instructions weren't aligned on bytes or words, and took longer to decode. In
  710. addition, the protections imposed on the objects often required multiple
  711. memory accesses for permission checks when data was accessed. Finally, the
  712. implimentation of the GDP on two chips instead of one produced a slower
  713. product.
  714.     It's high level architecture was similar to the Transputer systems, but it
  715. was implimented in a way that was much slower than other processors, while the
  716. T-414 not just innovative, but much faster than other processors of the time.
  717.  
  718. Part III: Rekursiv, an object oriented processor
  719.  
  720.     The Rekursiv processor is actually a processor board, not a
  721. microprocessor, but is neat. It was created by a manufacturing company called
  722. Linn, to control their manufacturing system. The owner was a believer in
  723. automation, and had automated the company as much as possible with Vaxes, but
  724. wasn't satisfied, so hired software experts to design a new system, which
  725. they called LINGO. It was completely object oriented, like smalltalk (and
  726. unlike C++, which allows some object concepts, but handles them in a
  727. conventional way), but too slow on the VAXes, so Linn commissioned a
  728. processor designed for the language.
  729.     This is not the only processor designed specifically for a language that
  730. is slow on other CPUs. Several specialized LISP processors, such as the
  731. Scheme-79 lisp processor, were created, but this chip is unique in its object
  732. oriented features. It also manages to support objects without the slowness of
  733. the Intel 432.
  734.     The Rekursiv processor features a writable instruction set, and is highly
  735. parallel. It uses 40 bits for objects, and 24 bit addressing, kind of. Memory
  736. can't be addressed directly, only through the object identifiers, which are
  737. 40 bit tags. The hardware handles all objects in memory and on disk, and
  738. swapping them to disk. It has no real program - all data and code/methods are
  739. embedded in the objects, and loaded when a message is sent to them. There is
  740. a page table which stores the object tags and maps them into memory.
  741.     There is a 64k area, arranges 16k X 128 bit words, for microcode,
  742. allowing an instruction set to be constructed on the fly. It can change for
  743. different objects.
  744.     The CPU hardware creates, loads, saves, destroys, and manipulates
  745. objects. The manipulation is accomplished with a standard AMD 29203 CPU, but
  746. the other parts are specially designed. It executes LINGO entirely fast
  747. enough, and is a perfect match between language and CPU, but it can execute
  748. more conventional languages, such as Smalltalk or C if needed - possible
  749. simultaneously, as separate complete objects.
  750.  
  751.     John Bayko (Tau).
  752.  
  753.  
  754. Appendix A:
  755. ==========
  756.  
  757. RISC and CISC definitions:
  758. -------------------------
  759.  
  760.     RISC refers to a Reduced Instruction Set Computer. IBM pioneered many RISC
  761. ideas (and the acronym) in their 801 project. RISC ideas also come from the
  762. CDC 6600 computer and projects at Berkley (RISC I and II and SOAR) and
  763. Stanford University (the MIPS project). RISC designs call for each instruction
  764. to execute in a single cycle, which is done with pipelines, no microcode (to
  765. reduce chip complexity and increase speed). Operations are performed on
  766. registers only (with the only memory access being loading and storing).
  767. Finally, many RISC designs uses a large windowed register set to speed
  768. subroutine calls (see the entry on SPARC for a description).
  769.     But despite these specifications, RISC is more a philosophy than a set of
  770. design criteria, and almost everything is called RISC, even if it isn't.
  771. Pipelines are used in the 68040 and 80486 CISC processors to execute
  772. instructions in a single cycle, even though they use microcode, and
  773. experiments have shown that windowed registers can be added to CISC designs,
  774. speeding them up in a similar way. Basically, RISC asks whether an instruction
  775. is necessary, or whether it can be replaced by several simpler instructions
  776. without a major performance loss. Typically multiply and divide instructions
  777. are necessary, despite the fact they require multiple cycles to execute. The
  778. advantage is that a simpler chip can run at a higher clock speed.
  779.     CISC refers to a Complex Instruction Set Computer. There's not really a
  780. set of design features to characterize it like there is for RISC, but small
  781. register sets, large instruction sets, and use of microcode are common. The
  782. philosophy is that if a complex instruction can result in an overal increase
  783. in speed, it's good. The disadvantage is that it's harder to increase the
  784. clock speed of a complex chip.
  785.     Microcode was a way of simplifying processor design. Even though it
  786. resulted in instructions that are slower requiring multiple clock cycles, it
  787. was thought it would allow more complex instructions to better support high
  788. level languages, leading to better performance. However, most complex
  789. instructions are seldom used.
  790.  
  791.  
  792. Processor Classifications:
  793. -------------------------
  794.  
  795. Arbitrarily assigned by me...
  796.  
  797.       ___CISC_________________________________________________________RISC
  798.       |                                                             14500B
  799. 4-bit |                                                     Am2903
  800.       |                               4004
  801.       |                            4040
  802. 8-bit |                                                        1802
  803.       |                               8008
  804.       |                            8080        2650,SC/MP  F8
  805.       |                   F100-L        650x,6800
  806.       |
  807.       |         MCP1600 Z-80                6809
  808. 16-bit|
  809.       |                     8086    TMS9900
  810.       |              Z8000            65816
  811.       |
  812.       |                    68000
  813. 32-bit|                                                      SPARC ARM
  814.       | 432                                            R2000
  815.       |           Z80000     68040
  816.       |                   ---<T9000>-Sword--HP-PA      88100
  817.       | Rekurs     RS/6000           -fish        88110
  818. 64-bit|          -------<860>------
  819.       |                                                   Alpha
  820.       |
  821.  
  822.  
  823. Appendix B:
  824. ==========
  825.  
  826. Appearing in IEEE Computer 1972:
  827. -------------------------------
  828.  
  829. NEW
  830. PRODUCTS
  831.  
  832. FEATURE PRODUCT
  833.  
  834. COMPUTER ON A CHIP
  835.  
  836.    Intel  has  introduced  an  integrated  CPU  complete with
  837. a 4-bit parallel adder, sixteen 4-bit registers, an accumula-
  838. tor  and  a  push-down  stack  on  one  chip.  It's  one of a
  839. family  of  four  new  ICs  which  comprise  the  MCS-4 micro
  840. computer  system--the  first  system  to  bring the power and
  841. flexibility  of  a  dedicated general-purpose computer at low
  842. cost in as few as two dual in-line packages.
  843.     MSC-4   systems   provide  complete  computing  and  con-
  844. trol  functions  for  test  systems,  data terminals, billing
  845. machines,   measuring   systems,   numeric   control  systems
  846. and process control systems.
  847.     The  heart  of  any  MSC-4  system  is  a  Type 4004 CPU,
  848. which  incudes  a  set  of  45  instructions.  Adding  one or
  849. more   Type   4001   ROMs   for   program  storage  and  data
  850. tables   gives  a  fully  functioning  micro-programmed  com-
  851. puter.   Add   Type  4002  RAMs  for  read-write  memory  and
  852. Type 4003 registers to expand the output ports.
  853.    Using  no  curcuitry  other  than  ICs from this family of
  854. four,  a  system  with  4096  8-bit  bytes of ROM storage and
  855. 5120   bits   of  RAM  storage  can  be  created.  For  rapid
  856. turn-around  or  only  a  few  systems,  Intel's erasable and
  857. re-programmable   ROM,   Type   1701,   may   be  substituted
  858. for the Type 4001 mask-programmed ROM.
  859.     MCS-4   systems  interface  easily  with  switches,  key-
  860. boards,  displays,  teletypewriters,  printers,  readers, A-D
  861. converters   and  other  popular  peripherals.   For  further
  862. information,  circle the reader service card 87 or call Intel
  863. at (408) 246-7501.
  864.               Circle 87 on Reader Service Card
  865.  
  866.             COMPUTER/JANUARY/FEBRUARY 1971/71
  867.  
  868. Appearing in IEEE Computer 1975:
  869. -------------------------------
  870.  
  871. The age of the affordable computer.
  872.  
  873.    MITS  announces  the  dawning  of  the  Altair 8800
  874. Computer.  A  lot  of  brain  power  at a price that's
  875. bound  to  create  love  and  understanding.   To  say
  876. nothing of excitement.
  877.    The  Altair  8800  uses a parallel, 8-bit processor
  878. (the  Intel  8080)  with  a 16-bit address.  It has 78
  879. basic  machine  instrcutions  with  variences ofer 200
  880. instructions.  It can directly address up to 65K bytes
  881. of  memory  and  it  is fast.   Very fast.  The Altair
  882. 8800's basic instruction sysle time is 2 microseconds.
  883.    Combine this speed and power with Altair's
  884. flexibility (it can directly address 256 input and 256
  885. output  devices)   and  you  have  a  computer  that's
  886. competitive with most mini's on the market today.
  887.     The  basic  Altair  8800  Computer   includes  the
  888. CPU,  front  panel  control board,  front panel lights
  889. and  switches,  power  supply  (enough  to  power  any
  890. additional  cards),  and  expander  board  (with  room
  891. for  3 extra cards)  all enclosed in a hansome,  alum-
  892. inum  case.  Up  to  16  cards can be added inside the
  893. main case.
  894.    Options  now  available  include  4K  dynamic  mem-
  895. ory  cards,  1K  static  memory  cards,  parallel  I/O
  896. cards,  three seial I/O cards  (TTL,  R232,  and TTY),
  897. octal  to  binary  computer  terminal,   32  character
  898. alpha-numeric   display   terminal,   ASCII  keyboard,
  899. audio  tape  interface,  4 channel storage scope  (for
  900. testing), and expander cards.
  901.    Options  under  development  include  a floppy disc
  902. system,  CRT  terminal,  line printer,  floating point
  903. processor,   vectored  interrupt   (8  levels),   PROM
  904. programmer,   direct   memory  access  controller  and
  905. much more.
  906.                     PRICE
  907. Altair 8800 Computer: $439.00* kit
  908.                       $621.00* assembled
  909.  
  910.   prices and specifications subject to change without notice
  911.  
  912. For more information or our free Altair Systems
  913. Catalogue phone or write: MITS, 6328 Linn N.E.,
  914. Albuquerque, N.M. 87108, 505/265-7553.
  915.  
  916.  *In quantities of 1 (one). Substantial OEM discounts available.
  917.  
  918. [Picture of computer, with switches and lights]
  919.  
  920.  
  921. Appendix C:
  922. ==========
  923.  
  924. Bubble Memories:
  925. ---------------
  926.  
  927.     Certain materials (ie. gadolinium gallium garnet) are magnetizable easily
  928. in only one direction. A film of these materials can be created so that it's
  929. magnetizable in an up-down direction. The magnetic fields tend to stick
  930. together, so you get a pattern that is kind of like air bubbles in water
  931. squished between glass, half with the north pole facing up, half with the
  932. south, floating inside the film. When a vertical magnetic field is imposed on
  933. this, the areas in opposite alignment to this field shrink to circles, or
  934. 'bubbles'.
  935.     A bubble can be formed by reversing the field in a small spot, and can be
  936. destroyed by increasing the field.
  937.     The bubbles are anchored to tiny magnetic posts arranged in lines. Usually
  938. a 'V V V' shape or a 'T T T' shape. Another magnetic field is applied across
  939. the chip, which is picked up by the posts and hods the bubble. The field is
  940. rotated 90 degrees, and the bubble is attracted to another part of the post.
  941. After four rotations, a bubble gets moved to the next post:
  942.  
  943.     o                             o              o
  944.      \/   \/       \/   \/      \/   \/      \/   \/
  945.                    o
  946.  
  947.     o_|_   _|_      _|_   _|_     _|_o  _|_      _|_ o _|_     _|_  o_|_
  948.          |           o  |             |              |             |
  949.  
  950.     I hope that diagram makes sense.
  951.     These bubbles move in long thin loops arranged in rows. At the end of the
  952. row, the bits to be read are copied to another loop that shift to read and
  953. write units that create or destroy bubbles. Access time for a particular bit
  954. depends on where it is, so it's not consistant.
  955.     One of the limitations with bubble memories, why they were superceded, was
  956. the slow access. A large bubble memory would require large loops, so accessing
  957. a bit could require cycling through a huge number of other bits first. The
  958. speed of propagation is limited by how fast magnetic fields could be switched
  959. back and forth, a limit of about 1 MHz. On the plus side, they are
  960. non-volatile, but eeproms, flash memories, and ferroelectric technologies are
  961. also non-volatile and and are faster.
  962.  
  963. Ferroelectric and Ferromagnetic (core) Memories:
  964. -----------------------------------------------
  965.  
  966.     Ferroelectric materials are analogous to ferromagnetic materials, though
  967. neither actually need to contain any iron. Ferromagnetic materials, used in
  968. core memories, will retain a magnetic field that's been applied to it.
  969.     Core memories consist of ferromagnetic rings strung together on tiny
  970. wires. The wires will induce magnetic fields in the rings, which can later be
  971. read back. Usually reading this memory will erase it, so once a bit is read,
  972. it is written back. This type of memory is expensive because it has to be
  973. constructed physically, but is very fast and non-volitile. Unfortunately it's
  974. also large and heavy, compared to other technologies.
  975.     Legend reports that a Swedish jet prototype (the Viggen I believe) once
  976. crashed, but the flight recorders weren't fast enough to record the cause of
  977. the crash. The flight computers used core memory, though, so they were hooked
  978. up and read out, and the still contained the data microseconds before the
  979. crash occurred, allowing the cause to be determined.
  980.     Ferroelectric materials retain an electric field rather than a magnetic
  981. field. like core memories, they are fast and non-volatile, but bits have to be
  982. rewritten when read. Unlike core memories, ferroelectric memories can be
  983. fabricated on silicon chips in high density and at low cost.
  984.  
  985.